package com.zgxt.demo.mapper;


import com.zgxt.demo.entity.DirectoryData;
import com.zgxt.demo.entity.ParentDirectory;
import com.zgxt.demo.entity.SecondDirectory;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface DirectoryMapper {
    //一级目录内容
    List<DirectoryData> directoryList(@Param("pid") Integer pid);
    //二级目录内容
    List<DirectoryData> s_directoryList(@Param("sid") Integer sid);
    //查询一级目录
    List<ParentDirectory> parentDirectoryList();
    //查询二级目录
    List<SecondDirectory> secondDirectoryList(@Param("pid") Integer pid);

    //查询全部一级目录
    List<ParentDirectory> parentDirectoryListAll(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("name") String name);
    //查询全部二级目录
    List<SecondDirectory> secondDirectoryListAll(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("name") String name);
    //查询一级目录的全部内容
    List<DirectoryData> directoryListAll(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("name") String name);
    //查询二级目录的全部内容
    List<DirectoryData> s_directoryListAll(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("name") String name);
    //查询一级目录总数
    Integer parentDirectoryCount(@Param("name") String name);
    //查询二级目录总数
    Integer secondDirectoryCount(@Param("name") String name);
    //查询一级目录全部内容总数
    Integer directoryCount(@Param("name") String name);
    //查询二级目录全部内容总数
    Integer s_directoryCount(@Param("name") String name);
    //添加一级目录
    Integer addParent(@Param("name") String name);
    //添加二级目录
    Integer addSecond(@Param("name") String name, @Param("pid") Integer pid);
    //添加一级目录内容
    Integer addDirectory(@Param("title") String title,@Param("link") String link, @Param("pid") Integer pid);
    //添加二级目录内容
    Integer addS_Directory(@Param("title") String title,@Param("link") String link,@Param("sid") Integer sid);

    //修改一级目录
    Integer updateParent(@Param("id") Integer id,@Param("name") String name);
    //修改二级目录
    Integer updateSecond(@Param("id") Integer id,@Param("pid") Integer pid,@Param("name") String name);
    //修改一级目录内容
    Integer updateDirectory(@Param("id") Integer id,@Param("pid") Integer pid,@Param("title") String title,@Param("link") String link);
    //修改二级目录内容
    Integer updateS_Directory(@Param("id") Integer id,@Param("sid") Integer sid,@Param("title") String title,@Param("link") String link);
    //批量删除一级目录
    Integer deleteParent(@Param("ids") String[] ids);
    //批量删除二级目录
    Integer deleteSecond(@Param("ids") String[] ids);
    //批量删除一级目录内容
    Integer deleteDirectory(@Param("ids") String[] ids);
    //批量删除二级目录内容
    Integer deleteS_Directory(@Param("ids") String[] ids);
    //根据二级目录ID返回一级目录的ID与名称
    ParentDirectory getParentBySid(@Param("sid") Integer sid);
  }
